/** @odoo-module **/

// 简单的调试脚本 - 监听 RPC 响应
console.log("📧 Email Debug Service Started");

// 在全局作用域监听 RPC 响应
if (typeof window !== 'undefined') {
    // 保存原始的 fetch 函数
    const originalFetch = window.fetch;
    
    window.fetch = async function(...args) {
        const response = await originalFetch.apply(this, args);
        
        // 克隆响应以便读取
        const clonedResponse = response.clone();
        
        try {
            const data = await clonedResponse.json();
            
            // 检查是否包含我们的调试信息
            if (data && data.result && data.result.context && data.result.context.debug_info) {
                const debug_info = data.result.context.debug_info;
                
                console.group("📧 邮件发送调试信息");
                console.log("=".repeat(80));
                
                console.log("👤 学生信息:");
                console.table(debug_info.student);
                
                console.log("👥 关注者:");
                console.table(debug_info.followers);
                
                console.log("📧 邮件模板:");
                console.log("  模板 ID:", debug_info.template.id);
                console.log("  模板名称:", debug_info.template.name);
                console.log("  email_to (模板):", debug_info.template.email_to_template);
                console.log("  email_to (渲染后):", debug_info.template.email_to_rendered);
                console.log("  email_from (模板):", debug_info.template.email_from_template);
                console.log("  email_from (渲染后):", debug_info.template.email_from_rendered);
                
                console.log("📮 邮件服务器:");
                if (debug_info.mail_server) {
                    console.log("  名称:", debug_info.mail_server.name);
                    console.log("  SMTP 服务器:", debug_info.mail_server.smtp_host);
                    console.log("  SMTP 用户:", debug_info.mail_server.smtp_user);
                } else {
                    console.log("  未配置");
                }
                
                console.log("⚙️  系统参数:");
                console.log("  Bounce alias:", debug_info.system_params.bounce_email);
                console.log("  Catchall domain:", debug_info.system_params.catchall_domain);
                console.log("  完整 Bounce 地址:", debug_info.system_params.full_bounce);
                
                if (data.result.context.error) {
                    console.error("❌ 错误:", data.result.context.error);
                }
                
                console.log("=".repeat(80));
                console.groupEnd();
                
                // 显示友好的提示
                setTimeout(() => {
                    const msg = `📧 邮件调试信息（详见 Console）

收件人: ${debug_info.template.email_to_rendered}
发件人: ${debug_info.template.email_from_rendered}
Bounce 地址: ${debug_info.system_params.full_bounce}

${data.result.context.error ? '❌ 错误: ' + data.result.context.error : '✅ 请查看服务器日志确认发送结果'}`;
                    
                    // 使用 Odoo 的通知系统（如果可用）
                    if (window.odoo && window.odoo.services && window.odoo.services.notification) {
                        window.odoo.services.notification.add(msg, {
                            type: data.result.context.error ? 'danger' : 'info',
                            title: '邮件调试信息',
                            sticky: true,
                        });
                    } else {
                        // 否则使用 alert
                        alert(msg);
                    }
                }, 100);
            }
        } catch (e) {
            // 忽略 JSON 解析错误
        }
        
        return response;
    };
}

